Game data:
-----------------

Title: "10th fall"  
Platform: MSX 1
Author: Luca "robylu" Giglioli
Language: MSX-BASIC v1.0
Category: EXTREM-256


Files:
------

10thfall.txt : code in plain text
10thfall.png : an ingame screenshot 
10thfall.dsk: Disk image to use in emulators (it contains the.bas, .txt and autoexec.bas files (the last for quick start))
10thfall readme.txt: this file


Game Instructions:
------------------

The goal is to neverending fall down without touch the walls.

Controls (keyboard):

ARROW KEYS (left/right): Move the face left and right 



Emulation:
----------

The easiest way is to play online on webmsx at https://webmsx.org
Once the page has loaded, click left mousebutton on the A: disk icon (down left 2nd icon) and select "load disk image" and open the .dsk file.
Reset the machine by clicking left mousebutton on the ON/OFF icon down left and selecting "reset", the game will start automatically.



Luca Giglioli
e-mail : lucagiglioli@libero.it


listing explained : 

1 screen1:width30:keyoff:color1,8,8:cls:px=128:sx=11:dx=11:fori=1to8:b$=b$+chr$(219):vpoke1751+i,255:nexti:a$=space$(sx)+b$+space$(dx):fori=0to7:reada:c$=c$+chr$(a):next:sprite$(0)=c$:data60,66,165,129,189,189,66,60

- setting up screen, colors, defining variable for x coordinate of the sprite, defining the initial line string to be printed, setting up the sprite (face)


2 print"         10TH  FALL":fori=1to15:colori:forU=1to200:next:next:print:print"try to avoid the walls !!":print:print" press return";:r$=input$(1):cls:color1:fori=1to10:printa$;:next:sc=time

- print the title, animate it by changing the color, print instructions, wait for a key, print the first 10 lines, setting up variable for score


3 putsprite0,(px,80),15,0:a=int(rnd(1)*2):b=int(rnd(1)*2)+1:ifa=0thensx=sx-b:dx=dx+b:elseifa=1thensx=sx+b:dx=dx-b

- put the sprite on screen, randomly calculate if the pit should move left or right and for 1 or 2 spaces


4 ifsx<0thensx=0:dx=22elseifsx>22thensx=22:dx=0

- controlling the limits of the pit


5 ifvpeek(base(5)+(px/8)+288)<>219then9

- controlling if the sprite (face) is on the black or red caracter


6 b=stick(0):a$=space$(sx)+b$+space$(dx):ifb=3thenpx=px+8:elseifb=7thenpx=px-8

- reading cursors, update string of the pit and updating coordinates of the sprite (face)


7 ifpx<8thenpx=8:elseifpx>240thenpx=240

- controlling limits of the sprite (face)


8 printa$;:goto3

- print the new line of the pit, jump to line 3


9 cls:print"your time  =  ";int((time-sc)/60);" sec.":putsprite0,(255,191):print:print"  again (s/n) "

- end of the game, print the time scored, put away sprite (face) and ask for another game


10 r$=inkey$:ifr$="n"thenendelseifr$="s"thenrunelsegoto10

- wait for player decision, end the game or restart it


